@@ -5,7 +5,12 @@ module DryRunnable |
||
| 5 | 5 |
@dry_run = true |
| 6 | 6 |
|
| 7 | 7 |
log = StringIO.new |
| 8 |
- @dry_run_logger = Logger.new(log) |
|
| 8 |
+ @started_at = Time.zone.now |
|
| 9 |
+ @dry_run_logger = Logger.new(log).tap { |logger|
|
|
| 10 |
+ logger.formatter = proc { |severity, datetime, progname, message|
|
|
| 11 |
+ "[#{elapsed_time(datetime)}] #{severity} -- #{progname}: #{message}\n"
|
|
| 12 |
+ } |
|
| 13 |
+ } |
|
| 9 | 14 |
@dry_run_results = {
|
| 10 | 15 |
events: [], |
| 11 | 16 |
} |
@@ -13,13 +18,17 @@ module DryRunnable |
||
| 13 | 18 |
begin |
| 14 | 19 |
raise "#{short_type} does not support dry-run" unless can_dry_run?
|
| 15 | 20 |
readonly! |
| 21 |
+ @started_at = Time.zone.now |
|
| 22 |
+ @dry_run_logger.info('Dry Run started')
|
|
| 16 | 23 |
if event |
| 17 | 24 |
raise "This agent cannot receive an event!" unless can_receive_events? |
| 18 | 25 |
receive([event]) |
| 19 | 26 |
else |
| 20 | 27 |
check |
| 21 | 28 |
end |
| 29 |
+ @dry_run_logger.info('Dry Run finished')
|
|
| 22 | 30 |
rescue => e |
| 31 |
+ @dry_run_logger.info('Dry Run failed')
|
|
| 23 | 32 |
error "Exception during dry-run. #{e.message}: #{e.backtrace.join("\n")}"
|
| 24 | 33 |
end |
| 25 | 34 |
|
@@ -35,6 +44,12 @@ module DryRunnable |
||
| 35 | 44 |
!!@dry_run |
| 36 | 45 |
end |
| 37 | 46 |
|
| 47 |
+ def elapsed_time(datetime) |
|
| 48 |
+ '%02d:%02d:%02d' % 2.times.inject([datetime - @started_at]) { |(x, *xs)|
|
|
| 49 |
+ [*x.divmod(60), *xs] |
|
| 50 |
+ } |
|
| 51 |
+ end |
|
| 52 |
+ |
|
| 38 | 53 |
included do |
| 39 | 54 |
prepend Wrapper |
| 40 | 55 |
end |